[INFO] cloning repository https://github.com/marcusbarbu/aoc2024
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/marcusbarbu/aoc2024" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarcusbarbu%2Faoc2024", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarcusbarbu%2Faoc2024'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6b035f2e2b2b514524e22e0adbb15645908e18d0
[INFO] checking marcusbarbu/aoc2024/6b035f2e2b2b514524e22e0adbb15645908e18d0 against master#40557f6225e337d68c8d4f086557ce54135f5dd9 for pr-158447
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarcusbarbu%2Faoc2024" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/marcusbarbu/aoc2024
[INFO] finished tweaking git repo https://github.com/marcusbarbu/aoc2024
[INFO] tweaked toml for git repo https://github.com/marcusbarbu/aoc2024 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/marcusbarbu/aoc2024 on toolchain 40557f6225e337d68c8d4f086557ce54135f5dd9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40557f6225e337d68c8d4f086557ce54135f5dd9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/marcusbarbu/aoc2024 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40557f6225e337d68c8d4f086557ce54135f5dd9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded diagonal v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d3918b06277d0ceffbd82ba4ea8c375ea8e682453673d62edc443cb5016df73e
[INFO] running `Command { std: "docker" "start" "d3918b06277d0ceffbd82ba4ea8c375ea8e682453673d62edc443cb5016df73e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d3918b06277d0ceffbd82ba4ea8c375ea8e682453673d62edc443cb5016df73e" "/opt/rustwide/cargo-home/bin/cargo" "+40557f6225e337d68c8d4f086557ce54135f5dd9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d3918b06277d0ceffbd82ba4ea8c375ea8e682453673d62edc443cb5016df73e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d3918b06277d0ceffbd82ba4ea8c375ea8e682453673d62edc443cb5016df73e" "/opt/rustwide/cargo-home/bin/cargo" "+40557f6225e337d68c8d4f086557ce54135f5dd9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]     Checking diagonal v0.1.0
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling syn v2.0.90
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking aoc2024 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `start_ref`
[INFO] [stdout]   --> src/graph.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn reconstruct_path(start_ref: &T, end: &T, prevs: &HashMap<T, Option<T>>) -> Vec<T> {
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_ref`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_ref`
[INFO] [stdout]   --> src/graph.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn reconstruct_path(start_ref: &T, end: &T, prevs: &HashMap<T, Option<T>>) -> Vec<T> {
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_ref`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking day6 v0.1.0 (/opt/rustwide/workdir/days/day6)
[INFO] [stderr]     Checking day18 v0.1.0 (/opt/rustwide/workdir/days/day18)
[INFO] [stderr]     Checking day2 v0.1.0 (/opt/rustwide/workdir/days/day2)
[INFO] [stderr]     Checking day13 v0.1.0 (/opt/rustwide/workdir/days/day13)
[INFO] [stderr]     Checking day7 v0.1.0 (/opt/rustwide/workdir/days/day7)
[INFO] [stderr]     Checking day12 v0.1.0 (/opt/rustwide/workdir/days/day12)
[INFO] [stderr]     Checking day9 v0.1.0 (/opt/rustwide/workdir/days/day9)
[INFO] [stderr]     Checking day25 v0.1.0 (/opt/rustwide/workdir/days/day25)
[INFO] [stderr]     Checking day8 v0.1.0 (/opt/rustwide/workdir/days/day8)
[INFO] [stderr]     Checking day9b v0.1.0 (/opt/rustwide/workdir/days/day9b)
[INFO] [stderr]     Checking day23 v0.1.0 (/opt/rustwide/workdir/days/day23)
[INFO] [stderr]     Checking day4 v0.1.0 (/opt/rustwide/workdir/days/day4)
[INFO] [stderr]     Checking day17 v0.1.0 (/opt/rustwide/workdir/days/day17)
[INFO] [stderr]     Checking day15 v0.1.0 (/opt/rustwide/workdir/days/day15)
[INFO] [stderr]     Checking day14 v0.1.0 (/opt/rustwide/workdir/days/day14)
[INFO] [stderr]     Checking day24 v0.1.0 (/opt/rustwide/workdir/days/day24)
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> days/day12/src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `edge_comp`
[INFO] [stdout]    --> days/day12/src/main.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 |     let edge_comp = edge_pieces.clone();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_edge_comp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw_operand`
[INFO] [stdout]    --> days/day17/src/main.rs:120:30
[INFO] [stdout]     |
[INFO] [stdout] 120 |             Operation::Bxc { raw_operand } => {
[INFO] [stdout]     |                              ^^^^^^^^^^^ help: try ignoring the field: `raw_operand: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking day1 v0.1.0 (/opt/rustwide/workdir/days/day1)
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]    --> days/day15/src/p2.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn new(s: &String, out: &String) -> Self {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> days/day18/src/main.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let (score, path) = self.graph.shortest_path_len(&(0, 0), &actual_corner);
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> days/day15/src/main.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Point(i32, i32);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoundedSet` is never used
[INFO] [stdout]  --> days/day15/src/main.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type BoundedSet = BTreeMap<usize, Vec<Point>>;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> days/day15/src/p1.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Point(i32, i32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoundedSet` is never used
[INFO] [stdout]   --> days/day15/src/p1.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type BoundedSet = BTreeMap<usize, Vec<Point>>;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Day15` is never constructed
[INFO] [stdout]   --> days/day15/src/p1.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct Day15 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MoveDir` is never used
[INFO] [stdout]   --> days/day15/src/p1.rs:27:6
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum MoveDir {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_delta` is never used
[INFO] [stdout]   --> days/day15/src/p1.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl MoveDir {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 35 |     pub fn get_delta(&self) -> Point {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse`, `render`, `part1_walk`, and `part1_get_score` are never used
[INFO] [stdout]    --> days/day15/src/p1.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Day15 {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  53 |     pub fn new(s: &String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn parse(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn render(&self) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn part1_walk(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn part1_get_score(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p1` is never used
[INFO] [stdout]    --> days/day15/src/p1.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn p1() {
[INFO] [stdout]     |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Contents` is never used
[INFO] [stdout]   --> days/day15/src/p2.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum Contents {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> days/day17/src/main.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |     let start: BruteInt = 1 << 16;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `answers`
[INFO] [stdout]    --> days/day17/src/main.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |     let answers: Vec<BruteInt> = Vec::new();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_answers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> days/day15/src/p2.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         write!(f_out.borrow_mut(), "{}", out + "\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let _ = write!(f_out.borrow_mut(), "{}", out + "\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> days/day18/src/main.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let (score, path) = self.graph.shortest_path_len(&(0, 0), &actual_corner);
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking day24b v0.1.0 (/opt/rustwide/workdir/days/day24b)
[INFO] [stdout] warning: unused variable: `test_input`
[INFO] [stdout]    --> days/day17/src/main.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let test_input = aoc
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `real_input`
[INFO] [stdout]    --> days/day17/src/main.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let real_input = aoc
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_real_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RegisterInt` is never used
[INFO] [stdout]  --> days/day17/src/main.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type RegisterInt = i32;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Day17` is never constructed
[INFO] [stdout]   --> days/day17/src/main.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Day17 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operation` is never used
[INFO] [stdout]   --> days/day17/src/main.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum Operation {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_opcode_operand` is never used
[INFO] [stdout]   --> days/day17/src/main.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Operation {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn from_opcode_operand(opcode: u8, operand: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AocMachine` is never constructed
[INFO] [stdout]   --> days/day17/src/main.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct AocMachine {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_combo_operand`, `messy_division`, `act`, `dump_state`, and `run` are never used
[INFO] [stdout]    --> days/day17/src/main.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl AocMachine {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  71 |     pub fn get_combo_operand(&self, raw: usize) -> RegisterInt {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     fn messy_division(num: RegisterInt, denom_operand: RegisterInt) -> RegisterInt {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn act(&mut self, op: Operation) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn dump_state(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn run(&mut self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse`, and `run_machine` are never used
[INFO] [stdout]    --> days/day17/src/main.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl Day17 {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 165 |     pub fn new(s: &String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn parse(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn run_machine(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force` is never used
[INFO] [stdout]    --> days/day17/src/main.rs:224:4
[INFO] [stdout]     |
[INFO] [stdout] 224 | fn brute_force() {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `brute_ans` should have an upper case name
[INFO] [stdout]    --> days/day17/src/main.rs:222:7
[INFO] [stdout]     |
[INFO] [stdout] 222 | const brute_ans: [BruteInt; 16] = [2, 4, 1, 2, 7, 5, 1, 7, 4, 4, 0, 3, 5, 5, 3, 0];
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]     |
[INFO] [stdout] 222 - const brute_ans: [BruteInt; 16] = [2, 4, 1, 2, 7, 5, 1, 7, 4, 4, 0, 3, 5, 5, 3, 0];
[INFO] [stdout] 222 + const BRUTE_ANS: [BruteInt; 16] = [2, 4, 1, 2, 7, 5, 1, 7, 4, 4, 0, 3, 5, 5, 3, 0];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PointVec` is never used
[INFO] [stdout]   --> days/day12/src/main.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type PointVec = Vec<Point>;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> days/day24/src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `kernel_set` should have an upper case name
[INFO] [stdout]   --> days/day12/src/main.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const kernel_set: [[KernelMatch; 4]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 65 - const kernel_set: [[KernelMatch; 4]; 8] = [
[INFO] [stdout] 65 + const KERNEL_SET: [[KernelMatch; 4]; 8] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> days/day24/src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLOAT_ISSUE_LIMIT` is never used
[INFO] [stdout]   --> days/day13/src/main.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const FLOAT_ISSUE_LIMIT: f64 = 0.00000000000005;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking day5 v0.1.0 (/opt/rustwide/workdir/days/day5)
[INFO] [stderr]     Checking day11 v0.1.0 (/opt/rustwide/workdir/days/day11)
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> days/day14/src/main.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         for i in 0..n {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking day20 v0.1.0 (/opt/rustwide/workdir/days/day20)
[INFO] [stderr]     Checking day16 v0.1.0 (/opt/rustwide/workdir/days/day16)
[INFO] [stdout] warning: value assigned to `cycle_times` is never read
[INFO] [stdout]    --> days/day14/src/main.rs:235:43
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut cycle_times: Vec<usize> = Vec::new();
[INFO] [stdout]     |                                           ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 236 |         cycle_times = self
[INFO] [stdout]     |         ----------- `cycle_times` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUTTON_REGEX` is never used
[INFO] [stdout]   --> days/day14/src/main.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const BUTTON_REGEX: &str = r"Button [A|B]: X(.*), Y(.*)";
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `debug_point_on_grid` is never used
[INFO] [stdout]   --> days/day14/src/main.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn debug_point_on_grid(p: Point, bounds: Point) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_cycle_time` is never used
[INFO] [stdout]   --> days/day14/src/main.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl Robot {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn find_cycle_time(&self, bounds: Point) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_cycles` is never used
[INFO] [stdout]    --> days/day14/src/main.rs:234:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl Day14 {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn find_cycles(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking day19 v0.1.0 (/opt/rustwide/workdir/days/day19)
[INFO] [stderr]     Checking day21 v0.1.0 (/opt/rustwide/workdir/days/day21)
[INFO] [stderr]     Checking day3 v0.1.0 (/opt/rustwide/workdir/days/day3)
[INFO] [stdout] warning: methods `find_p1_cheats_for_point`, `find_p1_cheats_and_scores`, and `get_min_savings_count_p1` are never used
[INFO] [stdout]    --> days/day20/src/main.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl Day20 {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn find_p1_cheats_for_point(&self, p: &Point) -> Option<HashSet<Point>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn find_p1_cheats_and_scores(&self) -> BTreeCounter<i32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn get_min_savings_count_p1(&self, min_score: i32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AocHelperError`
[INFO] [stdout]  --> days/day24b/src/main.rs:2:62
[INFO] [stdout]   |
[INFO] [stdout] 2 | use aoc2024::{map_vec_extend::append_to_hash_map, AocHelper, AocHelperError, AocResult, RequestedAocInputType};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::all`
[INFO] [stdout]  --> days/day24b/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::all;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLOAT_ISSUE_LIMIT` is never used
[INFO] [stdout]   --> days/day13/src/main.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const FLOAT_ISSUE_LIMIT: f64 = 0.00000000000005;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `checked` is never read
[INFO] [stdout]   --> days/day19/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | struct Day19 {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     checked: BTreeMap<(String, String), bool>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Day19` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking day22 v0.1.0 (/opt/rustwide/workdir/days/day22)
[INFO] [stderr]     Checking day10 v0.1.0 (/opt/rustwide/workdir/days/day10)
[INFO] [stdout] warning: unused variable: `stones`
[INFO] [stdout]   --> days/day11/src/main.rs:86:32
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 Stone::Multi { stones } => {
[INFO] [stdout]    |                                ^^^^^^ help: try ignoring the field: `stones: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> days/day11/src/main.rs:95:33
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 Stone::Single { value, rep } => {
[INFO] [stdout]    |                                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rep`
[INFO] [stdout]   --> days/day11/src/main.rs:95:40
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 Stone::Single { value, rep } => {
[INFO] [stdout]    |                                        ^^^ help: try ignoring the field: `rep: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> days/day11/src/main.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 Stone::Single { value, rep } => return format!("{} ", rep),
[INFO] [stdout]     |                                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stones`
[INFO] [stdout]    --> days/day11/src/main.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 Stone::Multi { stones } => todo!(),
[INFO] [stdout]     |                                ^^^^^^ help: try ignoring the field: `stones: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_reps`
[INFO] [stdout]    --> days/day11/src/main.rs:175:32
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 let (new_nums, new_reps) = D11Part2::split_number(&rep);
[INFO] [stdout]     |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_reps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> days/day11/src/main.rs:187:43
[INFO] [stdout]     |
[INFO] [stdout] 187 |         self.stones.iter().fold(0, |acc, (k, v)| acc + *v)
[INFO] [stdout]     |                                           ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `working_set` is never read
[INFO] [stdout]    --> days/day16/src/main.rs:230:51
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let mut working_set: BTreeSet<DirPoint> = BTreeSet::new();
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 235 |         working_set = self.graph.points.iter().map(|p| p.clone()).collect();
[INFO] [stdout]     |         ----------- `working_set` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ind`
[INFO] [stdout]    --> days/day21/src/main.rs:182:29
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     .find(|(ind, dir)| dir == &&Direction::None)
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_ind`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw_operand`
[INFO] [stdout]    --> days/day17/src/main.rs:120:30
[INFO] [stdout]     |
[INFO] [stdout] 120 |             Operation::Bxc { raw_operand } => {
[INFO] [stdout]     |                              ^^^^^^^^^^^ help: try ignoring the field: `raw_operand: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `set_of_bests`
[INFO] [stdout]    --> days/day21/src/main.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let set_of_bests: Vec<String> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_set_of_bests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `option_sets`
[INFO] [stdout]    --> days/day21/src/main.rs:297:13
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let option_sets: Vec<HashSet<String>> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_option_sets`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> days/day17/src/main.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |     let start: BruteInt = 1 << 16;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `answers`
[INFO] [stdout]    --> days/day17/src/main.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |     let answers: Vec<BruteInt> = Vec::new();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_answers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> days/day24/src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> days/day24/src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `borrow::BorrowMut`
[INFO] [stdout]  --> days/day24/src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     borrow::BorrowMut,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stones`
[INFO] [stdout]   --> days/day11/src/main.rs:86:32
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 Stone::Multi { stones } => {
[INFO] [stdout]    |                                ^^^^^^ help: try ignoring the field: `stones: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> days/day11/src/main.rs:95:33
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 Stone::Single { value, rep } => {
[INFO] [stdout]    |                                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rep`
[INFO] [stdout]   --> days/day11/src/main.rs:95:40
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 Stone::Single { value, rep } => {
[INFO] [stdout]    |                                        ^^^ help: try ignoring the field: `rep: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> days/day11/src/main.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 Stone::Single { value, rep } => return format!("{} ", rep),
[INFO] [stdout]     |                                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stones`
[INFO] [stdout]    --> days/day11/src/main.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 Stone::Multi { stones } => todo!(),
[INFO] [stdout]     |                                ^^^^^^ help: try ignoring the field: `stones: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> days/day24/src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Press` is never constructed
[INFO] [stdout]   --> days/day21/src/main.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum Direction {
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Press,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Direction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALL_DIRS` is never used
[INFO] [stdout]   --> days/day21/src/main.rs:71:7
[INFO] [stdout]    |
[INFO] [stdout] 71 | const ALL_DIRS: [Direction; 4] = [
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_scores`
[INFO] [stdout]    --> days/day16/src/main.rs:433:13
[INFO] [stdout]     |
[INFO] [stdout] 433 |         let final_scores: Vec<i32> = variants
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_scores`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `working_set` is never read
[INFO] [stdout]    --> days/day16/src/main.rs:352:51
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let mut working_set: BTreeSet<DirPoint> = BTreeSet::new();
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 357 |         working_set = self.graph.points.iter().map(|p| p.clone()).collect();
[INFO] [stdout]     |         ----------- `working_set` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_reps`
[INFO] [stdout]    --> days/day11/src/main.rs:175:32
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 let (new_nums, new_reps) = D11Part2::split_number(&rep);
[INFO] [stdout]     |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_reps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> days/day11/src/main.rs:187:43
[INFO] [stdout]     |
[INFO] [stdout] 187 |         self.stones.iter().fold(0, |acc, (k, v)| acc + *v)
[INFO] [stdout]     |                                           ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> days/day24/src/main.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout] 113 |             if let Some(val) = output_val.borrow().calculated_value {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> days/day24/src/main.rs:143:37
[INFO] [stdout]     |
[INFO] [stdout] 143 |                 WireCombo::Static { value } => {
[INFO] [stdout]     |                                     ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:147:33
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 WireCombo::Or { a, b } => a_val | b_val,
[INFO] [stdout]     |                                 ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:147:36
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 WireCombo::Or { a, b } => a_val | b_val,
[INFO] [stdout]     |                                    ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:148:34
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 WireCombo::And { a, b } => a_val & b_val,
[INFO] [stdout]     |                                  ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:148:37
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 WireCombo::And { a, b } => a_val & b_val,
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:149:34
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 WireCombo::Xor { a, b } => a_val ^ b_val,
[INFO] [stdout]     |                                  ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:149:37
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 WireCombo::Xor { a, b } => a_val ^ b_val,
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> days/day24/src/main.rs:275:33
[INFO] [stdout]     |
[INFO] [stdout] 275 |             WireCombo::Static { value } => {
[INFO] [stdout]     |                                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> days/day24/src/main.rs:308:14
[INFO] [stdout]     |
[INFO] [stdout] 308 |         for (index, key) in all_keys.clone().enumerate() {
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:328:33
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 WireCombo::Or { a, b } => {
[INFO] [stdout]     |                                 ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:328:36
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 WireCombo::Or { a, b } => {
[INFO] [stdout]     |                                    ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:332:34
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 WireCombo::And { a, b } => {
[INFO] [stdout]     |                                  ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:332:37
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 WireCombo::And { a, b } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `xv`
[INFO] [stdout]    --> days/day24/src/main.rs:354:13
[INFO] [stdout]     |
[INFO] [stdout] 354 |         let xv: Vec<String> = Vec::new();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_xv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_dir` is never read
[INFO] [stdout]    --> days/day16/src/main.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 140 | struct Day16 {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 146 |     start_dir: Direction,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Day16` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_input`
[INFO] [stdout]    --> days/day17/src/main.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let test_input = aoc
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `real_input`
[INFO] [stdout]    --> days/day17/src/main.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let real_input = aoc
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_real_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RegisterInt` is never used
[INFO] [stdout]  --> days/day17/src/main.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type RegisterInt = i32;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Day17` is never constructed
[INFO] [stdout]   --> days/day17/src/main.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Day17 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operation` is never used
[INFO] [stdout]   --> days/day17/src/main.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum Operation {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_opcode_operand` is never used
[INFO] [stdout]   --> days/day17/src/main.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Operation {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn from_opcode_operand(opcode: u8, operand: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AocMachine` is never constructed
[INFO] [stdout]   --> days/day17/src/main.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct AocMachine {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_combo_operand`, `messy_division`, `act`, `dump_state`, and `run` are never used
[INFO] [stdout]    --> days/day17/src/main.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl AocMachine {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  71 |     pub fn get_combo_operand(&self, raw: usize) -> RegisterInt {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     fn messy_division(num: RegisterInt, denom_operand: RegisterInt) -> RegisterInt {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn act(&mut self, op: Operation) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn dump_state(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn run(&mut self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse`, and `run_machine` are never used
[INFO] [stdout]    --> days/day17/src/main.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl Day17 {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 165 |     pub fn new(s: &String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn parse(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn run_machine(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force` is never used
[INFO] [stdout]    --> days/day17/src/main.rs:224:4
[INFO] [stdout]     |
[INFO] [stdout] 224 | fn brute_force() {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `brute_ans` should have an upper case name
[INFO] [stdout]    --> days/day17/src/main.rs:222:7
[INFO] [stdout]     |
[INFO] [stdout] 222 | const brute_ans: [BruteInt; 16] = [2, 4, 1, 2, 7, 5, 1, 7, 4, 4, 0, 3, 5, 5, 3, 0];
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]     |
[INFO] [stdout] 222 - const brute_ans: [BruteInt; 16] = [2, 4, 1, 2, 7, 5, 1, 7, 4, 4, 0, 3, 5, 5, 3, 0];
[INFO] [stdout] 222 + const BRUTE_ANS: [BruteInt; 16] = [2, 4, 1, 2, 7, 5, 1, 7, 4, 4, 0, 3, 5, 5, 3, 0];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> days/day24/src/main.rs:639:17
[INFO] [stdout]     |
[INFO] [stdout] 639 |             let mut ani = all_names.iter();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `working_set` is never read
[INFO] [stdout]    --> days/day16/src/main.rs:230:51
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let mut working_set: BTreeSet<DirPoint> = BTreeSet::new();
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 235 |         working_set = self.graph.points.iter().map(|p| p.clone()).collect();
[INFO] [stdout]     |         ----------- `working_set` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_p1_cheats_for_point`, `find_p1_cheats_and_scores`, and `get_min_savings_count_p1` are never used
[INFO] [stdout]    --> days/day20/src/main.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl Day20 {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn find_p1_cheats_for_point(&self, p: &Point) -> Option<HashSet<Point>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn find_p1_cheats_and_scores(&self) -> BTreeCounter<i32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn get_min_savings_count_p1(&self, min_score: i32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `price` is never read
[INFO] [stdout]   --> days/day22/src/main.rs:56:30
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut price: i64 = 0;
[INFO] [stdout]    |                              ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 62 |             (cur, price, change) = Day22::single_iter(cur);
[INFO] [stdout]    |                   ----- `price` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `change` is never read
[INFO] [stdout]   --> days/day22/src/main.rs:57:31
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut change: i64 = 0;
[INFO] [stdout]    |                               ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 62 |             (cur, price, change) = Day22::single_iter(cur);
[INFO] [stdout]    |                          ------ `change` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_scores`
[INFO] [stdout]    --> days/day16/src/main.rs:433:13
[INFO] [stdout]     |
[INFO] [stdout] 433 |         let final_scores: Vec<i32> = variants
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_scores`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `working_set` is never read
[INFO] [stdout]    --> days/day16/src/main.rs:352:51
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let mut working_set: BTreeSet<DirPoint> = BTreeSet::new();
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 357 |         working_set = self.graph.points.iter().map(|p| p.clone()).collect();
[INFO] [stdout]     |         ----------- `working_set` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_dir` is never read
[INFO] [stdout]    --> days/day16/src/main.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 140 | struct Day16 {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 146 |     start_dir: Direction,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Day16` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `raw` is never read
[INFO] [stdout]   --> days/day22/src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Day22 {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 12 |     raw: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Day22` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> days/day24/src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct SingleOutput {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] 27 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SingleOutput` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `find_inputs`, `get_inputs_per_output_bit`, and `get_names` are never used
[INFO] [stdout]    --> days/day24/src/main.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Day24 {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn find_inputs(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn get_inputs_per_output_bit(&self) -> HashSet<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn get_names(w: &WireCombo) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_a_check` is never used
[INFO] [stdout]    --> days/day24/src/main.rs:697:4
[INFO] [stdout]     |
[INFO] [stdout] 697 | fn run_a_check(real_input: &String, swaps: Vec<Vec<&String>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> days/day24b/src/main.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let mut ideal_name_real_name_map: HashMap<String, String> = HashMap::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> days/day24b/src/main.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let mut real_name_ideal_name_map: HashMap<String, String> = HashMap::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `correct`
[INFO] [stdout]    --> days/day24b/src/main.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let correct = self.make_an_adder(idx);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_correct`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cin_name`
[INFO] [stdout]    --> days/day24b/src/main.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let cin_name = format!("cin_{:0>2}", idx);
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cin_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> days/day12/src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out` is never read
[INFO] [stdout]    --> days/day24b/src/main.rs:307:23
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let mut out = Vec::new();
[INFO] [stdout]     |                       ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 308 |         out = self.all_gates.iter().filter_map(|(name, gate)| {
[INFO] [stdout]     |         --- `out` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out` is never read
[INFO] [stdout]    --> days/day24b/src/main.rs:321:23
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let mut out = "".to_string();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 329 |         out = flat_vec.join(",");
[INFO] [stdout]     |         --- `out` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_input`
[INFO] [stdout]    --> days/day24b/src/main.rs:338:9
[INFO] [stdout]     |
[INFO] [stdout] 338 |     let test_input = aoc
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Input` is never constructed
[INFO] [stdout]   --> days/day24b/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum GateType {
[INFO] [stdout]    |      -------- variant in this enum
[INFO] [stdout] 11 |     Input,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GateType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `touched_gate_names` is never read
[INFO] [stdout]   --> days/day24b/src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Day24Part2 {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     touched_gate_names: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Day24Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_input_gates` is never used
[INFO] [stdout]    --> days/day24b/src/main.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Day24Part2 {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn get_input_gates(&self, w: &Wire) -> Vec<&Wire> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `edge_comp`
[INFO] [stdout]    --> days/day12/src/main.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 |     let edge_comp = edge_pieces.clone();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_edge_comp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> days/day24/src/main.rs:785:5
[INFO] [stdout]     |
[INFO] [stdout] 785 |     file.write_all(gv.as_bytes());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 785 |     let _ = file.write_all(gv.as_bytes());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `checked` is never read
[INFO] [stdout]   --> days/day19/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | struct Day19 {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     checked: BTreeMap<(String, String), bool>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Day19` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PointVec` is never used
[INFO] [stdout]   --> days/day12/src/main.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type PointVec = Vec<Point>;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `kernel_set` should have an upper case name
[INFO] [stdout]   --> days/day12/src/main.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const kernel_set: [[KernelMatch; 4]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 65 - const kernel_set: [[KernelMatch; 4]; 8] = [
[INFO] [stdout] 65 + const KERNEL_SET: [[KernelMatch; 4]; 8] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AocHelperError`
[INFO] [stdout]  --> days/day24b/src/main.rs:2:62
[INFO] [stdout]   |
[INFO] [stdout] 2 | use aoc2024::{map_vec_extend::append_to_hash_map, AocHelper, AocHelperError, AocResult, RequestedAocInputType};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::all`
[INFO] [stdout]  --> days/day24b/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::all;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> days/day14/src/main.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         for i in 0..n {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `price` is never read
[INFO] [stdout]   --> days/day22/src/main.rs:56:30
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut price: i64 = 0;
[INFO] [stdout]    |                              ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 62 |             (cur, price, change) = Day22::single_iter(cur);
[INFO] [stdout]    |                   ----- `price` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `change` is never read
[INFO] [stdout]   --> days/day22/src/main.rs:57:31
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut change: i64 = 0;
[INFO] [stdout]    |                               ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 62 |             (cur, price, change) = Day22::single_iter(cur);
[INFO] [stdout]    |                          ------ `change` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]    --> days/day15/src/p2.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn new(s: &String, out: &String) -> Self {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ind`
[INFO] [stdout]    --> days/day21/src/main.rs:182:29
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     .find(|(ind, dir)| dir == &&Direction::None)
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_ind`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `set_of_bests`
[INFO] [stdout]    --> days/day21/src/main.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let set_of_bests: Vec<String> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_set_of_bests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `option_sets`
[INFO] [stdout]    --> days/day21/src/main.rs:297:13
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let option_sets: Vec<HashSet<String>> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_option_sets`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `raw` is never read
[INFO] [stdout]   --> days/day22/src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Day22 {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 12 |     raw: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Day22` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> days/day15/src/main.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Point(i32, i32);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoundedSet` is never used
[INFO] [stdout]  --> days/day15/src/main.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type BoundedSet = BTreeMap<usize, Vec<Point>>;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> days/day15/src/p1.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Point(i32, i32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoundedSet` is never used
[INFO] [stdout]   --> days/day15/src/p1.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type BoundedSet = BTreeMap<usize, Vec<Point>>;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Day15` is never constructed
[INFO] [stdout]   --> days/day15/src/p1.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct Day15 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MoveDir` is never used
[INFO] [stdout]   --> days/day15/src/p1.rs:27:6
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum MoveDir {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_delta` is never used
[INFO] [stdout]   --> days/day15/src/p1.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl MoveDir {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 35 |     pub fn get_delta(&self) -> Point {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse`, `render`, `part1_walk`, and `part1_get_score` are never used
[INFO] [stdout]    --> days/day15/src/p1.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Day15 {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  53 |     pub fn new(s: &String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn parse(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn render(&self) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn part1_walk(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn part1_get_score(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p1` is never used
[INFO] [stdout]    --> days/day15/src/p1.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn p1() {
[INFO] [stdout]     |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Contents` is never used
[INFO] [stdout]   --> days/day15/src/p2.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum Contents {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cycle_times` is never read
[INFO] [stdout]    --> days/day14/src/main.rs:235:43
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut cycle_times: Vec<usize> = Vec::new();
[INFO] [stdout]     |                                           ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 236 |         cycle_times = self
[INFO] [stdout]     |         ----------- `cycle_times` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Press` is never constructed
[INFO] [stdout]   --> days/day21/src/main.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum Direction {
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Press,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Direction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALL_DIRS` is never used
[INFO] [stdout]   --> days/day21/src/main.rs:71:7
[INFO] [stdout]    |
[INFO] [stdout] 71 | const ALL_DIRS: [Direction; 4] = [
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> days/day15/src/p2.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         write!(f_out.borrow_mut(), "{}", out + "\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let _ = write!(f_out.borrow_mut(), "{}", out + "\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUTTON_REGEX` is never used
[INFO] [stdout]   --> days/day14/src/main.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const BUTTON_REGEX: &str = r"Button [A|B]: X(.*), Y(.*)";
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `debug_point_on_grid` is never used
[INFO] [stdout]   --> days/day14/src/main.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn debug_point_on_grid(p: Point, bounds: Point) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_cycle_time` is never used
[INFO] [stdout]   --> days/day14/src/main.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl Robot {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn find_cycle_time(&self, bounds: Point) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_cycles` is never used
[INFO] [stdout]    --> days/day14/src/main.rs:234:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl Day14 {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn find_cycles(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `borrow::BorrowMut`
[INFO] [stdout]  --> days/day24/src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     borrow::BorrowMut,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> days/day24/src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> days/day24/src/main.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout] 113 |             if let Some(val) = output_val.borrow().calculated_value {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> days/day24/src/main.rs:143:37
[INFO] [stdout]     |
[INFO] [stdout] 143 |                 WireCombo::Static { value } => {
[INFO] [stdout]     |                                     ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:147:33
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 WireCombo::Or { a, b } => a_val | b_val,
[INFO] [stdout]     |                                 ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:147:36
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 WireCombo::Or { a, b } => a_val | b_val,
[INFO] [stdout]     |                                    ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:148:34
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 WireCombo::And { a, b } => a_val & b_val,
[INFO] [stdout]     |                                  ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:148:37
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 WireCombo::And { a, b } => a_val & b_val,
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:149:34
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 WireCombo::Xor { a, b } => a_val ^ b_val,
[INFO] [stdout]     |                                  ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:149:37
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 WireCombo::Xor { a, b } => a_val ^ b_val,
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> days/day24/src/main.rs:275:33
[INFO] [stdout]     |
[INFO] [stdout] 275 |             WireCombo::Static { value } => {
[INFO] [stdout]     |                                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> days/day24/src/main.rs:308:14
[INFO] [stdout]     |
[INFO] [stdout] 308 |         for (index, key) in all_keys.clone().enumerate() {
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:328:33
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 WireCombo::Or { a, b } => {
[INFO] [stdout]     |                                 ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:328:36
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 WireCombo::Or { a, b } => {
[INFO] [stdout]     |                                    ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> days/day24/src/main.rs:332:34
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 WireCombo::And { a, b } => {
[INFO] [stdout]     |                                  ^ help: try ignoring the field: `a: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> days/day24/src/main.rs:332:37
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 WireCombo::And { a, b } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `b: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `xv`
[INFO] [stdout]    --> days/day24/src/main.rs:354:13
[INFO] [stdout]     |
[INFO] [stdout] 354 |         let xv: Vec<String> = Vec::new();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_xv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> days/day24b/src/main.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let mut ideal_name_real_name_map: HashMap<String, String> = HashMap::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> days/day24b/src/main.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let mut real_name_ideal_name_map: HashMap<String, String> = HashMap::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `correct`
[INFO] [stdout]    --> days/day24b/src/main.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let correct = self.make_an_adder(idx);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_correct`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cin_name`
[INFO] [stdout]    --> days/day24b/src/main.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let cin_name = format!("cin_{:0>2}", idx);
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cin_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out` is never read
[INFO] [stdout]    --> days/day24b/src/main.rs:307:23
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let mut out = Vec::new();
[INFO] [stdout]     |                       ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 308 |         out = self.all_gates.iter().filter_map(|(name, gate)| {
[INFO] [stdout]     |         --- `out` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out` is never read
[INFO] [stdout]    --> days/day24b/src/main.rs:321:23
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let mut out = "".to_string();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 329 |         out = flat_vec.join(",");
[INFO] [stdout]     |         --- `out` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_input`
[INFO] [stdout]    --> days/day24b/src/main.rs:338:9
[INFO] [stdout]     |
[INFO] [stdout] 338 |     let test_input = aoc
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Input` is never constructed
[INFO] [stdout]   --> days/day24b/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum GateType {
[INFO] [stdout]    |      -------- variant in this enum
[INFO] [stdout] 11 |     Input,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GateType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `touched_gate_names` is never read
[INFO] [stdout]   --> days/day24b/src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Day24Part2 {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     touched_gate_names: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Day24Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_input_gates` is never used
[INFO] [stdout]    --> days/day24b/src/main.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Day24Part2 {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn get_input_gates(&self, w: &Wire) -> Vec<&Wire> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> days/day24/src/main.rs:639:17
[INFO] [stdout]     |
[INFO] [stdout] 639 |             let mut ani = all_names.iter();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> days/day24/src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct SingleOutput {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] 27 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SingleOutput` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `find_inputs`, `get_inputs_per_output_bit`, and `get_names` are never used
[INFO] [stdout]    --> days/day24/src/main.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Day24 {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn find_inputs(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn get_inputs_per_output_bit(&self) -> HashSet<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn get_names(w: &WireCombo) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_a_check` is never used
[INFO] [stdout]    --> days/day24/src/main.rs:697:4
[INFO] [stdout]     |
[INFO] [stdout] 697 | fn run_a_check(real_input: &String, swaps: Vec<Vec<&String>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> days/day24/src/main.rs:785:5
[INFO] [stdout]     |
[INFO] [stdout] 785 |     file.write_all(gv.as_bytes());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 785 |     let _ = file.write_all(gv.as_bytes());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.56s
[INFO] running `Command { std: "docker" "inspect" "d3918b06277d0ceffbd82ba4ea8c375ea8e682453673d62edc443cb5016df73e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d3918b06277d0ceffbd82ba4ea8c375ea8e682453673d62edc443cb5016df73e", kill_on_drop: false }`
[INFO] [stdout] d3918b06277d0ceffbd82ba4ea8c375ea8e682453673d62edc443cb5016df73e
